/*
 * BigN.h
 *
 *  Created on: 23/gen/2011
 *      Author: dustgod
 */

#include <deque>
#include <string>

using namespace std;

class BigN{
private:
	deque<int> n;
public:
	BigN(string s); // Costruttore da una stringa numerica
	BigN(unsigned long long m); // Costruttore da intero
	unsigned long long toInt(); // Conversione a intero, se possibile
	unsigned long long size(); // Fornisce il numero di cifre
	unsigned char& operator [](const unsigned long long& i); // Overloading dell'operatore di sottoscrizione
	bool operator==(const BigN& bign); // Operatore di confronto (uguale)
	bool operator!=(const BigN& bign); // Operatore di confronto (diverso)
	bool operator<(const BigN& bign); // Operatore di confronto (minore)
	bool operator>(const BigN& bign); // Operatore di confronto (maggiore)
	bool operator<=(const BigN& bign); // Operatore di confronto (minore o uguale)
	bool operator>=(const BigN& bign); // Operatore di confronto (maggiore o uguale)
	ostream& operator<<(ostream& os); // Operatore di stream output
	BigN operator+(const BigN& bign); // Operatore di somma
};
